package suanfa.string;

public class Main {

    public static void swap(char[] str,int i,int j){
        char tmp=str[i];
        str[i]=str[j];
        str[j]=tmp;
    }

    public static void permutation(char[] str,int start){
        if(str==null|| start<0){
            return;
        }
        if(start==str.length){
            System.out.println(str);
        }else{
            for (int i = 0; i < str.length; i++) {
                //交换start与i所在位置的字符
                swap(str,start,i);
                //固定第一个字符，对剩余的字符进行全排列
                permutation(str,start+1);
                //还原start与i所在位置的字符
                swap(str,start,i);
            }
        }


    }

    public static void permutation(String s){
        char[] str=s.toCharArray();
        permutation(str,0);
    }

    public static void main(String[] args) {
        String s="abc";
        permutation(s);
    }
}
